The SSA Representation Framework: Semantics, Analyses and GCC Implementation

نویسنده

  • Sebastian POP
چکیده

Interpretation. The semantics of a programming language can be more or less precise, depending on the degree of detail captured by the description of program execution. The framework of abstract interpretation [CC77, CC79] can be used to automatically define several semantics layers, corresponding to different levels of precision. Each semantics layer is represented by a partially ordered set, or domain. The relation between two semantics layers is defined using an approximation translation, which maps elements of the concrete domain to elements of the abstract domain. In order to guarantee the conservation of concrete semantics properties, the approximation and concretization functions have to satisfy the following properties, for some given elements from the concrete domain c1, c2 ∈ Σ1, and for some elements of the abstract domain a1, a2 ∈ Σ2: • α monotone: c1 ⊆ c2 ⇒ (α(c1) ⊆ α(c2)), • γ monotone: a1 ⊆ a2 ⇒ (γ(a1) ⊆ γ(a2)), • γ ◦ α extensive: c1 ⊆ γ(α(c1)), • α ◦ γ reductive: α(γ(a1)) ⊆ a1. A coarse approximation of a concrete domain leads to a less precise abstract domain on which the semantics can be practically computable. It is sometimes the case that the operations on the abstract domain are exact, i.e. computing on the abstract set produces exactly the same result, without loss of precision, as in the concrete set. In this case the order is trivially preserved, as the abstraction and concretization functions are bijections on some subsets of the abstract and concrete sets. 52 CHAPTER 3. FROM SSA TO ASSA IN PROLOG Theory of Abstract Domains. As we have seen, approximation functions map elements from a concrete semantics domain to an abstract domain. Once an abstract domain is formalized, it is possible to use the abstract interpretation framework for automatically defining the static analyzer corresponding to the translation of the concrete semantics domain to the abstract domain. The importance of abstract domains in the framework of abstract interpretation is illustrated by the number of abstract domains that have been formalized:

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Tree SSA A New Optimization Infrastructure for GCC

Tree SSA is a new optimization framework based on the Static Single Assignment (SSA) form that operates on GCC’s tree representation. Tree SSA is designed to be both language and target independent and allow highlevel analyses and transformations that are difficult or impossible to implement with RTL. One of the main goals of the project is to produce an analysis and optimization infrastructure...

متن کامل

Draft Version Denotational Semantics for SSA Conversion

We present the first formal specification of the SSA form, an intermediate code representation language used in most modern compilers such as GCC or Intel CC, and of its conversion process from imperative languages. More specifically, we provide (1) a denotational semantics of the SSA, the Static Single Assignment form, (2) a collecting denotational semantics for a Turing-complete imperative la...

متن کامل

Architecture for a Next-Generation GCC

This paper presents a design and implementation of a whole-program interprocedural optimizer built in the GCC framework. Through the introduction of a new language-independent intermediate representation, we extend the current GCC architecture to include a powerful mid-level optimizer and add link-time interprocedural analysis and optimization capabilities. This intermediate representation is a...

متن کامل

Draft Version In and Out of SSA: A Denotational Specification

We present non-standard denotational specifications of the SSA form and of its conversion processes from and to imperative programming languages. Thus, we provide a strong mathematical foundation for this intermediate code representation language used in modern compilers such as GCC or Intel CC. More specifically, we provide (1) a new functional approach to SSA, the Static Single Assignment for...

متن کامل

In and Out of SSA: A Denotational Specification

We present non-standard denotational specifications of the SSAform and of its conversion processes from and to imperative pro-gramming languages. Thus, we provide a strong mathematicalfoundation for this intermediate code representation language usedin modern compilers such as GCC or Intel CC.More specifically, we provide (1) a new functional approachto SSA, the Static S...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2006